package com.fulu.game.bi.redis.service.auth;

import com.fulu.game.bi.entity.po.auth.BiUser;
import com.fulu.game.bi.entity.vo.auth.user.UserQueryVO;
import com.fulu.game.bi.entity.vo.auth.user.UserSaveVO;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Set;

/**
 * bi系统用户服务
 */
public interface BiUserService {

    /**
     * 获取当前用户
     */
    BiUser getCurrentUser();

    /**
     * 通过用户名获取用户
     * @param userName 用户名
     */
    BiUser findByUserName(String userName);

    /**
     * 通过用户名获取用户角色
     * @param username 用户名
     */
    Set<String> getRoles(String username);

    /**
     * 根据用户名获取权限
     * @param username 用户名
     */
    Set<String> getPermissions(String username);

    /**
     * 查询用户列表
     */
    PageInfo<BiUser> list(UserQueryVO vo);

    /**
     * 新增用户
     */
    BiUser save(UserSaveVO vo);

    /**
     * 根据ID删除用户
     */
    void deleteById(Integer id);

    /**
     * 根据ID查询用户
     */
    BiUser findById(Integer adminId);

    /**
     * 绑定角色到用户
     */
    void bindRole(Integer userId, List<Integer> roleIdList);
}
